﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 创建者：zhaijc
 * 创建时间：2023/4/17 14:16:32
 * 版本：V1.0.0
 * 描述：工步数据
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//工步数据参数
namespace MedianSocketService.ProtocolParams
{
    public class WorkStepDataParam
    {
        /// <summary>
        /// 工步类型-参考EnumWorkStepType
        /// </summary>
        [Description("工步类型-参考EnumWorkStepType")]
        public int stepType { get; set; }

        /// <summary>
        /// 工步序号 从1开始
        /// </summary>
        [Description("工步序号")]
        public int stepNo { get; set; }

        /// <summary>
        /// 工步运行主参数--参考工步主参数结构
        /// </summary>
        [Description("工步运行主参数")]
        public StepMainParam stepMainParam { get; set; }


        /// <summary>
        /// 环境控制参数--参考环境控制参数结构
        /// </summary>
        [Description("环境控制参数")]
        public EnvironmentControlParam environmentControlParam { get; set; }

        /// <summary>
        /// 0-无效；1-设置标称容量模式; 2-指定工步所得容量为标称容量模式
        /// </summary>
        [Description("倍率模式")]
        public int rateMode { get; set; }

        /// <summary>
        /// 标称容量指定工步号，从1开始
        /// </summary>
        [Description("标称容量指定工步号")]
        public int nominalCapacityStepNo { get; set; }

        /// <summary>
        /// 标称容量值(Ah)
        /// </summary>
        [Description("标称容量")]
        public int nominalCapacity { get; set; }


        #region 工步截至检测
        /// <summary>
        /// 条件达到动作类型 0-下一步， 1-停止，2-结束
        /// </summary>
        [Description("条件达到动作类型")]
        public int conditionMetActionType { get; set; }

        /// <summary>
        /// 条件达到动作类型-开关
        /// </summary>
        [Description("条件达到动作类型-开关")]
        public bool isConditionMetActionEnabled { get; set; }

        /// <summary>
        /// 截至时间-时间值(S)
        /// </summary>
        [Description("截至时间")]
        public int cutoffTime { get; set; }

        /// <summary>
        /// 截至时间-开关
        /// </summary>
        [Description("截至时间-开关")]
        public bool isCutoffTimeEnabled { get; set; }

        /// <summary>
        ///截至电流- 电流值(A)
        /// </summary>
        [Description("截至电流")]
        public int cutoffCurrent { get; set; }

        /// <summary>
        /// 截至电流-开关
        /// </summary>
        [Description("截至电流-开关")]
        public bool isCutoffCurrentEnabled { get; set; }

        /// <summary>
        /// 截至电压-电压值(V)
        /// </summary>
        [Description("截至电压")]
        public int cutoffVoltage { get; set; }
        /// <summary>
        /// 截至电压-开关
        /// </summary>
        [Description("截至电压-开关")]
        public bool isCutoffVoltageEnabled { get; set; }

        /// <summary>
        /// 截至容量-容量值(Ah)
        /// </summary>
        [Description("截至容量")]
        public int cutoffCapacity { get; set; }

        /// <summary>
        /// 截至容量-开关
        /// </summary>
        [Description("截至容量-开关")]
        public bool isCutoffCapacityEnabled { get; set; }

        #endregion

        #region 工步保护条件

        /// <summary>
        /// 电压上限-电压值(V)
        /// </summary>
        [Description("电压上限 ")]
        public int voltageUpperLimit { get; set; }

        /// <summary>
        /// 电压上限-开关
        /// </summary>
        [Description("电压上限-开关")]
        public bool isVoltageUpperLimitEnabled { get; set; }

        /// <summary>
        /// 电压下限-电压值(V)
        /// </summary>
        [Description("电压下限 ")]
        public int voltageLowerLimit { get; set; }

        /// <summary>
        /// 电压下限-开关
        /// </summary>
        [Description("电压下限-开关")]
        public bool isVoltageLowerLimitEnabled { get; set; }

        /// <summary>
        /// 电流上限-电流值(A)
        /// </summary>
        [Description("电流上限 ")]
        public int currentUpperLimit { get; set; }
        /// <summary>
        /// 电流上限-开关
        /// </summary>
        [Description("电流上限-开关")]
        public bool isCurrentUpperLimitEnabled { get; set; }
        /// <summary>
        /// 电流下限-电流值(A)
        /// </summary>
        [Description("电流下限 ")]
        public int currentLowerLimit { get; set; }
        /// <summary>
        /// 电流下限-开关
        /// </summary>
        [Description("电流下限-开关")]
        public bool isCurrentLowerLimitEnabled { get; set; }
        /// <summary>
        /// 容量上限-容量值(Ah)
        /// </summary>
        [Description("容量上限 ")]
        public int capacityUpperLimit { get; set; }
        /// <summary>
        /// 容量上限-开关
        /// </summary>
        [Description("容量上限-开关")]
        public bool isCapacityUpperLimitEnabled { get; set; }
        /// <summary>
        /// 电池温度上限-温度值(℃)
        /// </summary>
        [Description("电池温度上限 ")]
        public int temperatureUpperLimit { get; set; }
        /// <summary>
        /// 电池温度上限-开关
        /// </summary>
        [Description("电池温度上限-开关")]
        public bool isTemperatureUpperLimitEnabled { get; set; }
        /// <summary>
        /// 电池温度下限-温度值(℃)
        /// </summary>
        [Description("电池温度下限 ")]
        public int temperatureLowerLimit { get; set; }
        /// <summary>
        /// 电池温度下限-开关
        /// </summary>
        [Description("电池温度下限-开关")]
        public bool isTemperatureLowerLimitEnabled { get; set; }

        /// <summary>
        /// 环境温度上限-温度值(℃)
        /// </summary>
        [Description("环境温度上限 ")]
        public int envTemperatureUpperLimit { get; set; }
        /// <summary>
        /// 环境温度上限-开关
        /// </summary>
        [Description("环境温度上限-开关")]
        public bool isEnvTemperatureUpperLimitEnabled { get; set; }

        /// <summary>
        /// 环境温度下限--温度值(℃)
        /// </summary>
        [Description("环境温度下限 ")]
        public int envTemperatureLowerLimit { get; set; }
        /// <summary>
        /// 环境温度下限-开关
        /// </summary>
        [Description("环境温度下限-开关")]
        public bool isEnvTemperatureLowerLimitEnabled { get; set; }
        /// <summary>
        /// 真空上限-真空值(kPa)
        /// </summary>
        [Description("真空上限 ")]
        public int vacuumUpperLimit { get; set; }
        /// <summary>
        /// 真空上限-开关
        /// </summary>
        [Description("真空上限-开关")]
        public bool isVacuumUpperLimitEnabled { get; set; }

        /// <summary>
        /// 真空下限-真空值(kPa)
        /// </summary>
        [Description("真空下限 ")]
        public int vacuumLowerLimit { get; set; }
        /// <summary>
        /// 真空下限-开关
        /// </summary>
        [Description("真空下限-开关")]
        public bool isVacuumLowerLimitEnabled { get; set; }

        /// <summary>
        /// 电池温度变化率
        /// </summary>
        [Description("电池温度变化率 ")]
        public RateChangeData batteryTemperatureChangeRate { get; set; }
        /// <summary>
        /// 电池温度变化率-开关
        /// </summary>
        [Description("电池温度变化率-开关")]
        public bool isBatteryTemperatureChangeRateEnabled { get; set; }

        /// <summary>
        /// 电压变化率
        /// </summary>
        [Description("电压变化率 ")]
        public RateChangeData voltageChangeRate { get; set; }
        /// <summary>
        /// 电压变化率-开关
        /// </summary>
        [Description("电压变化率-开关")]
        public bool isVoltageChangeRateEnabled { get; set; }

        /// <summary>
        /// 电流变化率
        /// </summary>
        [Description("电流变化率 ")]
        public RateChangeData currentChangeRate { get; set; }
        /// <summary>
        /// 电流变化率-开关
        /// </summary>
        [Description("电流变化率-开关")]
        public bool isCurrentChangeRateEnabled { get; set; }

        /// <summary>
        /// 其他类型变化率
        /// </summary>
        [Description("其他类型变化率 ")]
        public RateChangeData otherChangeRate { get; set; }
        /// <summary>
        /// 其他类型变化率-开关
        /// </summary>
        [Description("其他类型变化率-开关")]
        public bool isOtherChangeRateEnabled { get; set; }
        /// <summary>
        /// 指定时间内电压--指定时间值
        /// </summary>
        [Description("指定时间内电压 ")]
        public int voltageInTimePeriod { get; set; }

        /// <summary>
        ///时间内电压最大值
        /// </summary>
        [Description("时间内电压最大值 ")]
        public int maxVoltageInTimePeriod { get; set; }
        /// <summary>
        /// 时间内电压最小值
        /// </summary>
        [Description("时间内电压最小值 ")]
        public int minVoltageInTimePeriod { get; set; }
        /// <summary>
        /// 指定时间内电压-开关
        /// </summary>
        [Description("指定时间内电压-开关")]
        public bool isVoltageInTimePeriodEnabled { get; set; }

        #endregion



    }
}
